package com.hgkj.system.domain;

import com.hgkj.common.core.domain.BaseDomain;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 菜单表&权限表
 */
@Data
public class SysMenu extends BaseDomain {
    /**
     * 菜单ID
     */
    private Long menuId;
    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名不能为空")
    @Size(min = 1, max = 20, message = "菜单名长度需在1-20之间")
    private String menuName;
    /**
     * 父菜单ID
     */
    @NotNull(message = "父菜单不能为空")
    @Min(value = 0, message = "显示顺序不能小于0")
    private Long parentId;
    /**
     * 显示顺序
     */
    @NotNull(message = "显示顺序不能为空")
    @Min(value = 0, message = "显示顺序不能小于0")
    private Integer orderNum;
    /**
     * 路由地址
     */
    private String path;
    /**
     * 组件路径
     */
    private String component;
    /**
     * 路由参数
     */
    private String query;
    /**
     * 菜单类型（M目录 C菜单 F按钮 A接口api）
     */
    @NotNull(message = "菜单类型不能为空")
    private String menuType;
    /**
     * 菜单状态（0显示 1隐藏）
     */
    private String visible;
    /**
     * 菜单状态（0正常 1停用）
     */
    private String status;
    /**
     * 权限标识
     */
    private String perms;
    /**
     * 菜单图标
     */
    private String icon;

    private String title;

    private List<SysMenu> children;
}
